package basicGrammar;

/*
    流程控制
     在我们的代码逻辑中，可能会涉及到一些执行的顺序和条件的一些限制

    分支(判断)结构
        有选择的执行代码
    循环结构
        同样的事情(代码)执行多次
 */

import java.util.Scanner;

public class Demo4_Control_branch {
    /*
        if分支
            单分支
                语法：if(布尔表达式){
                        //逻辑代码
                     }
                这段分支代码满足条件时执行，不满足条件时不执行
                如果分支的代码下只有一行代码可以省略代码块的{}，但是不建议省略
            两个分支
                语法：if(布尔表达式){
                        //逻辑代码
                     }else{
                        //逻辑代码
                     }
                两个分支，必须执行其中一个。符合条件执行if，不符合条件执行else
            多分支
               语法：if(布尔表达式){
                        //逻辑代码
                     }else if(布尔表达式){
                        //逻辑代码
                     }
                     ...
                     else{
                        //逻辑代码
                     }
               多分支中，必须有一个if分支且位于最上面，可以有1到多个 else if 分支
               可以有else也可以没有else，如果有else一定放在最下面

               多分支的时候只能执行一个分支，如果多个分支都能匹配，执行第一个分支
          嵌套分支
            分支内部可以继续有分支
            适合于一个表达式无法完成判断的情况下使用
            也比较适合处理逻辑比较复杂的情况

        switch分支
          与if对比，switch只能做等值比较
          switch 对类型要求比较严格，必须按类型匹配
          switch 使用的是贯穿执行的原则，满足一个case后，会继续向下面的case进行匹配
                 所以每个case后面的最后一句需要加 break;
          除了case匹配的内容外，可以使用default匹配其他值，相当于if中的else
          语法：
              switch(表达式){
                 case 值1:
                    执行语句;
                    break;
                 case 值2:
                    执行语句;
                    break;
                 case 值3:
                    执行语句;
                    break;
                 ...
                 default:
                    执行语句;
              }
     */

    public static void main(String[] args) {

        //单分支
        int score = 50;
//        if(score >= 85){
//            System.out.println("优秀");
//        }

        //多分支
//        if(score >= 85 && score <= 100){
//            System.out.println("优秀");
//        }else if(score >= 60 && score < 95){
//            System.out.println("及格");
//        }else if(score > 100){
//            System.out.println("错误");
//        }else{
//            System.out.println("不及格");
//        }


        //嵌套分支
//        if(score>=60 && score<=100){
//            if(score>=85){
//                System.out.println("优秀");
//            }else{
//                System.out.println("及格");
//            }
//        }else{
//            System.out.println("不及格");
//        }

        Scanner scan = new Scanner(System.in);
        System.out.println("请输入num:");
        int num = scan.nextInt();

        int stateCode = 503;
        switch (num){
            case 200:
                System.out.println("一切正常");
                break;
            case 404:
                System.out.println("page not found");
                break;
            case 500:
                System.out.println("error in server");
                break;
            default:
                System.out.println("当前状态码："+num);
        }

    }
}
